1. Field of the Invention
The invention relates generally to the field of application development environments. In particular, the invention relates to a system and method for writing, compiling, testing and deploying the applications on a web portal in a manner that utilizes minimal web portal and network resources.
2. Background of the Invention
There are several methods and systems used to develop applications in both the client-server and stand alone environments. All have several shortcomings, such as resources availability, flexibility to use different tools to develop the applications, backup infrastructure and other such problems.
With the advent of technology, the world is rapidly transforming into a unipolar community where information dissemination and sharing is absolutely crucial. Businesses worldwide are focusing on maximizing their gains by building features and software that would cater to their exclusive need in the most efficient manner. Enterprise resource planning (ERP) and customer relationship management (CRM) exemplify such applications. The infrastructure for application development calls for various software and hardware resources. Software resources include tools and utilities to automate on or more of the SDLC processes. Hardware resources include one or more of computers interconnected to each other in one form or other like Dumb terminal, LAN, WAN, Wireless etc.
Application development has thus assumed great significance. An effective application development environment greatly improves a firm's return on investment by increasing customer satisfaction, improving efficiency and reducing operative costs. Application development assumes significance when the applications are consolidated to generate a viable software package that performs multiple tasks and is thereby a value addition to the firm.
The development of the Web and e-business has ushered in a developer's dilemma. It is now required of him to develop more complex applications in less time. And this greatly necessitates a collaborative application development environment consisting of tightly integrated development teams that have their own niche area of specialization. This explains the inevitability of Application Service Providers who own and operate software, maintain servers and make the applications available to customers via the Internet either in a browser or through some sort of thin client. A thin client is generally a low-cost computing device that works in a server-centric computing model. Thin clients typically do not require state-of-the-art, powerful processors and large amounts of memory because they access applications from a central server or network. Application Service Providers are particularly attractive to small businesses and enterprises chiefly because of the low cost of entry, extremely short setup time, elimination of head count and the high cost of specialized software that would have to be installed otherwise.
However, the shortcoming of the current Application Service Providers is the lack of application testing and deployment facilities that might be very crucial for an enterprise wishing to develop its own customized application but lacks the infrastructure to perform the task. Since developers have two alternatives and can make use of a separate environment to do the programming. Depending on the kind of application development, it may be accomplished using a standalone machine or a collaborative environment.
The need for a collaborative application development environment has greatly popularized the Internet as a highly desirable and popular platform. Web portals like SourceForge and Freshmeat offer a variety of services for collaborative application development. Users and project groups are allotted space on the portal to develop their applications using tools provided by SourceForge. However, the shortcoming of SourceForge is the lack of licensed third part tools such as Visual C++, Oracle development tools, Java development tools and the like to provide the user the flexibility to program on the web portal using a language and tools of their choice. It also does not provide for application deployment or testing tools. The collaborative application development portals serve to bring users together to collaborate and develop applications for the community.
Generally, end users had an in-house information technology team. The mainframe days had the development and deployment done on the same machine. End users and developers connected to a single machine. The resource management was handled in a central location and developers and end users connected with the help of a dumb terminal.
Development on custom applications was outsourced to professional software development organizations. However with the advent of desktops and servers, developers had the flexibility to maintain the resources and move the final executable version to the end users. Along with the flexibility, the complexity to manage the resources had crept in. Also there is a clear demarcation between the application developer(s) and end user(s). End users were normally users who bought shrink wrapped products that were completely developed. Any changes required by the end user or any form of customization for the application was done by the vendor.
However, some companies such as SAP, PeopleSoft provided pre-built components and end users had the flexibility to customize their application themselves at their location.
Zope Corporation with its software, ZOPE, enables members to create and manage dynamic web applications such as portal and intranet sites through a web interface. However, new objects can only be created by writing new Zope add-ons in Python. It does not provide a full-fledged, industry level application development environment where the users are given the flexibility to program using a language or development tool of their choice.
The technologies available today, as listed above, address several shortcomings in the field of application development. However, there still exists a need for a web portal that provides third party licensed tools for application development, application compilation and application testing. Integrated development environments such as Visual Studio, J Builder, which the users can use at low costs on need basis rather than each user having to purchase or license the gamut of software tools from the market.
There also exists a need to provide infrastructure, resources, security, backup facilities, ease of application maintenance and the like for companies that wish to develop and thereafter deploy the application on the web portal itself.